package com.dirox.plugins.ao.service;

import com.atlassian.activeobjects.tx.Transactional;

import com.dirox.plugins.ao.entities.*;
import java.util.List;

@Transactional
public interface NoteService {
	Note add(String content, int priority);

	Note update(int id, String content, int priority);

	void delete(int id);
		
	List<Note> getAll();
	
	List<Note> getNotes(int priority);
	List<Note> getNotes(String issueKey);

	List<Note> getMemos();
	List<Note> getMemos(String issueKey);
	void tagNoteToUser(Note note, com.atlassian.crowd.embedded.api.User user);
	
	void untagNoteToUser(Note note, User user);
	
	void associateUsers(Note note, com.atlassian.crowd.embedded.api.User[] arrUsers);	

	void tagNoteToIssue(Note note, com.atlassian.jira.issue.Issue issue);
	
	void untagNoteToIssue(Note note, Issue issue);
	
	void associateIssues(Note note, com.atlassian.jira.issue.Issue[] arrIssues);	

	// Add function
	Note getNote(int id);
}
